﻿using System;
using System.Collections.Generic;
using System.Text;
using TPDiseño.DTO_s;

namespace TPDiseño.Clases_de_Entidad
{
    public class Competencia
    {

//CONSTRUCTORES
        public Competencia()
        {
        }

//ATRIBUTOS
        private int cod_comp;
        private string nombre;
        private string descripcion;
        private Boolean eliminado;
        private DateTime fecha_elim;
        private int usuario_elim;
        private List<Factor> factores;

        // Propiedades
        public int _cod_comp
        {
            get
            {
                return cod_comp;
            }
            set
            {
                cod_comp = value;
            }
        }

        public string _nombre
        {
            get
            {
                return nombre;
            }
            set
            {
                nombre = value;
            }
        }   
        public string _descripcion
        {
            get
            {
                return descripcion;
            }
            set
            {
                descripcion = value;
            }
        }
        public Boolean _eliminado
        {
            get
            {
                return eliminado;
            }
            set
            {
                eliminado = value;
            }
        }
        public DateTime _fecha_elim
        {
            get
            {
                return fecha_elim;
            }
            set
            {
                fecha_elim = value;
            }
        }
        public int _usuario_elim
        {
            get
            {
                return usuario_elim;
            }
            set
            {
                usuario_elim = value;
            }
        }
        public List<Factor> _factores
        {
            get
            {
            
            return this.factores;
            }
            set
            {
                this.factores = value;
            }
        }

        // Constructores
        public Competencia(int unCod_comp, string unNombre, string unaDescripcion)
        {
            this.cod_comp = unCod_comp;
            this.nombre = unNombre;
            this.descripcion = unaDescripcion;

        }
        public Competencia(int unCod_comp, string unNombre, string unaDescripcion, List<Factor> unaListaDeFactores)
            : this(unCod_comp, unNombre, unaDescripcion)
        {
            this.factores = unaListaDeFactores;

        }
        
        // Metodos
        public Competencia clonarNivel(){
            // Retorno una copia a nivel (no incluye composicion estructural) de la instancia actual
            return new Competencia(this._cod_comp, this._nombre, this.descripcion);
        }

        
    }
}
